// 引入API和DataTable
// 确保已加载 api.js 和 data-table.js

document.addEventListener('DOMContentLoaded', function() {
    // 用户表格列定义
    const userColumns = [
        { field: 'id', title: '用户ID', readonly: true },
        { field: 'username', title: '用户名' },
        { field: 'email', title: '邮箱' },
        { field: 'nickname', title: '昵称' },
        { field: 'phone', title: '手机号' },
        { field: 'province', title: '省份' },
        { field: 'city', title: '城市' },
        { field: 'district', title: '区/县' },
        { field: 'zipCode', title: '邮编' },
        { field: 'address', title: '详细地址' },
        { field: 'role', title: '角色', type: 'select', options: [
            { value: 'USER', label: '普通用户' },
            { value: 'ADMIN', label: '管理员' }
        ]},
        { field: 'createdAt', title: '注册时间', readonly: true, 
          render: (value) => value ? new Date(value).toLocaleString() : '' }
    ];
    
    // 自定义行渲染函数，添加重置密码按钮
    const userRowFormatter = (user) => {
        return user;
    };
    
    // 自定义操作列渲染
    const customActions = (item) => {
        return `
            <button class="btn btn-sm btn-edit" data-id="${item.id}">编辑</button>
            <button class="btn btn-sm btn-delete" data-id="${item.id}">删除</button>
            <button class="btn btn-sm btn-reset-password" data-id="${item.id}">重置密码</button>
        `;
    };
    
    // 初始化用户表格，传入自定义行格式化函数和操作列渲染函数
    const userTable = new DataTable('user-content', userColumns, UserAPI, userRowFormatter, customActions);
    
    // 添加重置密码功能
    document.addEventListener('click', async function(e) {
        if (e.target.classList.contains('btn-reset-password')) {
            const userId = e.target.dataset.id;
            if (confirm('确定要重置该用户的密码吗？')) {
                try {
                    const response = await UserAPI.resetPassword(userId);
                    if (response.success) {
                        alert('密码重置成功');
                    } else {
                        alert('密码重置失败: ' + response.message);
                    }
                } catch (error) {
                    alert('密码重置失败: ' + error.message);
                }
            }
        }
    });
});